package com.css.zfzx.fwsjcj.modules.taskmanage.task.service;

import com.alibaba.fastjson.JSONObject;
import com.css.zfzx.fwsjcj.modules.quality.vo.QualityVo;
import com.css.zfzx.fwsjcj.modules.taskmanage.task.entity.FwTaskEntity;
import com.css.zfzx.fwsjcj.modules.taskmanage.task.vo.GroupVo;
import com.css.zfzx.fwsjcj.modules.taskmanage.task.vo.TaskQueryVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface TaskService {

    void saveTask(FwTaskEntity taskEntity);

    void updateTask(GroupVo groupVo);

    void deleteTask(List<String> ids) throws Exception;

    JSONObject getPage(String type, HttpServletRequest request, TaskQueryVo taskQueryVo, int curPage, int pageSize);

    /**
     * 根据任务ID获取任务详情
     *
     * @param id
     * @return
     */
    FwTaskEntity findById(String id);
    FwTaskEntity findbyName(String taskName);

    /***
     * APP端查询任务列表
     * @param type
     * @param curtPage
     * @param pageSize
     * @return
     */
    JSONObject findPage(String type, int curtPage, int pageSize);

    List<FwTaskEntity> getAllTask(HttpServletRequest request);
    List<FwTaskEntity> getJGTask(HttpServletRequest request);
    void completeTask(String type, String taskID);

    List<FwTaskEntity> findByIds(List<String> list);

    /**
     * 质检分页
     */
    JSONObject getPage(TaskQueryVo taskQueryVo, int curPage, int pageSize);

    /**
     * 分配质检员
     */
    void sendQualityInspector(QualityVo qualityVo);

    /**
     * 质检分页（包含当前登录用户）
     */
    JSONObject getPageByUser(TaskQueryVo taskQueryVo, int curPage, int pageSize);

    /**
     * 修改（复用性高）
     *
     * @param taskEntity
     */
    void update(FwTaskEntity taskEntity);

    JSONObject getPageTask(String type, HttpServletRequest request, TaskQueryVo taskQueryVo, int curPage, int pageSize);

}
